package com.regent.central.bill.dto.sale_order;

import com.regent.central.bill.common.SaleOrderType;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 销售单列表DTO
 *
 * @author 杨昌沛 646742615@qq.com
 * @date 2018-06-22 15:04
 **/
public class SaleOrderQueryDTO {
    /**
     * 类型 销售单/收款单
     */
    private SaleOrderType type;
    /**
     * 销售单ID
     */
    private String id;

    /**
     * 老板组织ID
     */
    private String bossUnitId;

    /**
     * 组织ID
     */
    private String unitId;

    /**
     * 下单日期 yyyy-MM-dd
     */
    private String orderDay;

    /**
     * 订单编号
     */
    private Integer orderNo;

    /**
     * 客户ID
     */
    private String customerId;

    /**
     * 收货地址
     */
    private String addressId;

    /**
     * 跟单人ID
     */
    private String merchandiserId;

    /**
     * 抹零金额
     */
    private BigDecimal oddment;

    /**
     * 现场发货
     */
    private Boolean deliveryOnScene;

    private Boolean priceChanged;

    /**
     * 本单应付
     */
    private BigDecimal amountExpected;

    /**
     * 总收/退款金额
     */
    private BigDecimal amountArrived;

    /**
     * 总核进/核出金额
     */
    private BigDecimal amountCleared;
    private BigDecimal amountClearedIn;
    private BigDecimal amountClearedOut;

    /**
     * 结欠
     */
    private BigDecimal amountRemain;

    /**
     * 销售总数
     */
    private BigDecimal totalSold;

    /**
     * 开单总数
     */
    private BigDecimal totalCreated;

    /**
     * 改欠货总数
     */
    private BigDecimal totalModified;
    private BigDecimal totalModifiedInc;
    private BigDecimal totalModifiedDec;

    /**
     * 退货总数
     */
    private BigDecimal totalReturned;

    /**
     * 发货总数
     */
    private BigDecimal totalDelivered;

    /**
     * 订单总欠货数
     */
    private BigDecimal totalOwed;

    /**
     * 总开单金额
     */
    private BigDecimal amountCreated;

    /**
     * 总改欠货金额
     */
    private BigDecimal amountModified;
    private BigDecimal amountModifiedInc;
    private BigDecimal amountModifiedDec;

    /**
     * 总退货金额
     */
    private BigDecimal amountReturned;

    /**
     * 打印次数
     */
    private Integer printed;

    /**
     * 是否已作废
     */
    private Boolean canceled;

    /**
     * 开单时间
     */
    private String dateOrdered;

    /**
     * 开单人ID
     */
    private String userOrdered;

    /**
     * 销售单备注
     */
    private List<SaleOrderQueryRemarkDTO> remarks = new ArrayList<>();

    private List<SaleOrderQueryRemarkDTO> createGoodsRemarks = new ArrayList<>();

    private List<SaleOrderQueryRemarkDTO> returnGoodsRemarks = new ArrayList<>();

    public SaleOrderType getType() {
        return type;
    }

    public void setType(SaleOrderType type) {
        this.type = type;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getBossUnitId() {
        return bossUnitId;
    }

    public void setBossUnitId(String bossUnitId) {
        this.bossUnitId = bossUnitId;
    }

    public String getUnitId() {
        return unitId;
    }

    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    public String getOrderDay() {
        return orderDay;
    }

    public void setOrderDay(String orderDay) {
        this.orderDay = orderDay;
    }

    public Integer getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(Integer orderNo) {
        this.orderNo = orderNo;
    }

    public String getCustomerId() {
        return customerId;
    }

    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    public String getAddressId() {
        return addressId;
    }

    public void setAddressId(String addressId) {
        this.addressId = addressId;
    }

    public String getMerchandiserId() {
        return merchandiserId;
    }

    public void setMerchandiserId(String merchandiserId) {
        this.merchandiserId = merchandiserId;
    }

    public BigDecimal getOddment() {
        return oddment;
    }

    public void setOddment(BigDecimal oddment) {
        this.oddment = oddment;
    }

    public Boolean getPriceChanged() {
        return priceChanged;
    }

    public void setPriceChanged(Boolean priceChanged) {
        this.priceChanged = priceChanged;
    }

    public Boolean getDeliveryOnScene() {
        return deliveryOnScene;
    }

    public void setDeliveryOnScene(Boolean deliveryOnScene) {
        this.deliveryOnScene = deliveryOnScene;
    }

    public BigDecimal getAmountExpected() {
        return amountExpected;
    }

    public void setAmountExpected(BigDecimal amountExpected) {
        this.amountExpected = amountExpected;
    }

    public BigDecimal getAmountArrived() {
        return amountArrived;
    }

    public void setAmountArrived(BigDecimal amountArrived) {
        this.amountArrived = amountArrived;
    }

    public BigDecimal getAmountCleared() {
        return amountCleared;
    }

    public void setAmountCleared(BigDecimal amountCleared) {
        this.amountCleared = amountCleared;
    }

    public BigDecimal getAmountRemain() {
        return amountRemain;
    }

    public void setAmountRemain(BigDecimal amountRemain) {
        this.amountRemain = amountRemain;
    }

    public BigDecimal getTotalSold() {
        return totalSold;
    }

    public void setTotalSold(BigDecimal totalSold) {
        this.totalSold = totalSold;
    }

    public BigDecimal getTotalCreated() {
        return totalCreated;
    }

    public void setTotalCreated(BigDecimal totalCreated) {
        this.totalCreated = totalCreated;
    }

    public BigDecimal getTotalModified() {
        return totalModified;
    }

    public void setTotalModified(BigDecimal totalModified) {
        this.totalModified = totalModified;
    }

    public BigDecimal getTotalReturned() {
        return totalReturned;
    }

    public void setTotalReturned(BigDecimal totalReturned) {
        this.totalReturned = totalReturned;
    }

    public BigDecimal getTotalDelivered() {
        return totalDelivered;
    }

    public void setTotalDelivered(BigDecimal totalDelivered) {
        this.totalDelivered = totalDelivered;
    }

    public BigDecimal getTotalOwed() {
        return totalOwed;
    }

    public void setTotalOwed(BigDecimal totalOwed) {
        this.totalOwed = totalOwed;
    }

    public BigDecimal getAmountCreated() {
        return amountCreated;
    }

    public void setAmountCreated(BigDecimal amountCreated) {
        this.amountCreated = amountCreated;
    }

    public BigDecimal getAmountModified() {
        return amountModified;
    }

    public void setAmountModified(BigDecimal amountModified) {
        this.amountModified = amountModified;
    }

    public BigDecimal getAmountReturned() {
        return amountReturned;
    }

    public void setAmountReturned(BigDecimal amountReturned) {
        this.amountReturned = amountReturned;
    }

    public Integer getPrinted() {
        return printed;
    }

    public void setPrinted(Integer printed) {
        this.printed = printed;
    }

    public Boolean getCanceled() {
        return canceled;
    }

    public void setCanceled(Boolean canceled) {
        this.canceled = canceled;
    }

    public String getDateOrdered() {
        return dateOrdered;
    }

    public void setDateOrdered(String dateOrdered) {
        this.dateOrdered = dateOrdered;
    }

    public String getUserOrdered() {
        return userOrdered;
    }

    public void setUserOrdered(String userOrdered) {
        this.userOrdered = userOrdered;
    }

    public BigDecimal getAmountClearedIn() {
        return amountClearedIn;
    }

    public void setAmountClearedIn(BigDecimal amountClearedIn) {
        this.amountClearedIn = amountClearedIn;
    }

    public BigDecimal getAmountClearedOut() {
        return amountClearedOut;
    }

    public void setAmountClearedOut(BigDecimal amountClearedOut) {
        this.amountClearedOut = amountClearedOut;
    }

    public BigDecimal getTotalModifiedInc() {
        return totalModifiedInc;
    }

    public void setTotalModifiedInc(BigDecimal totalModifiedInc) {
        this.totalModifiedInc = totalModifiedInc;
    }

    public BigDecimal getTotalModifiedDec() {
        return totalModifiedDec;
    }

    public void setTotalModifiedDec(BigDecimal totalModifiedDec) {
        this.totalModifiedDec = totalModifiedDec;
    }

    public List<SaleOrderQueryRemarkDTO> getRemarks() {
        return remarks;
    }

    public void setRemarks(List<SaleOrderQueryRemarkDTO> remarks) {
        this.remarks = remarks;
    }

    public List<SaleOrderQueryRemarkDTO> getCreateGoodsRemarks() {
        return createGoodsRemarks;
    }

    public void setCreateGoodsRemarks(List<SaleOrderQueryRemarkDTO> createGoodsRemarks) {
        this.createGoodsRemarks = createGoodsRemarks;
    }

    public List<SaleOrderQueryRemarkDTO> getReturnGoodsRemarks() {
        return returnGoodsRemarks;
    }

    public void setReturnGoodsRemarks(List<SaleOrderQueryRemarkDTO> returnGoodsRemarks) {
        this.returnGoodsRemarks = returnGoodsRemarks;
    }

    public BigDecimal getAmountModifiedInc() {
        return amountModifiedInc;
    }

    public void setAmountModifiedInc(BigDecimal amountModifiedInc) {
        this.amountModifiedInc = amountModifiedInc;
    }

    public BigDecimal getAmountModifiedDec() {
        return amountModifiedDec;
    }

    public void setAmountModifiedDec(BigDecimal amountModifiedDec) {
        this.amountModifiedDec = amountModifiedDec;
    }
}
